﻿using System.Collections.Generic;
using Newtonsoft.Json;

public class ParkingRecord1
{
    /// <summary>
    ///     粤BA5K21
    /// </summary>
    public string VehicleNo { get; set; }

    /// <summary>
    /// </summary>
    public string EnterTime { get; set; }

    /// <summary>
    /// </summary>
    public int ServiceMin { get; set; }

    /// <summary>
    /// </summary>
    public decimal TotalFee { get; set; } = 0.0m;

    /// <summary>
    /// </summary>
    public decimal ActualPayFee { get; set; } = 0.0m;

    /// <summary>
    /// </summary>
    public string ThirdPartyId { get; set; }

    /// <summary>
    /// </summary>
    public string ThirdParkOrderNo { get; set; }

    /// <summary>
    /// </summary>
    public string CreatedByQrCode { get; set; }

    ///// <summary>
    ///// </summary>
    //public decimal totalFeeInYuan { get; set; } = 0.0m;
}

public class PointsItem
{
    /// <summary>
    /// </summary>
    public decimal Available { get; set; }

    /// <summary>
    /// </summary>
    public decimal MaxDiscountFee { get; set; }

    /// <summary>
    /// </summary>
    public decimal RemainDiscountFeePerDay { get; set; }

    /// <summary>
    /// </summary>
    public int PointsPerUnit { get; set; }

    /// <summary>
    /// </summary>
    public int UnitAmount { get; set; }

    /// <summary>
    /// </summary>
    public int TotalAvailable { get; set; }

    /// <summary>
    /// </summary>
    public bool NewMember { get; set; }

    /// <summary>
    ///     已选择兑换45元
    /// </summary>
    public string Label { get; set; }

    /// <summary>
    /// </summary>
    public decimal DiscountFee { get; set; }
}

public class CouponsItem
{
    /// <summary>
    ///     工作日
    /// </summary>
    [JsonProperty(PropertyName = "availableDays", NullValueHandling = NullValueHandling.Ignore)]
    public string AvailableDays { get; set; }

    /// <summary>
    /// </summary>
    public string Code { get; set; }

    /// <summary>
    /// </summary>
    public string CouponId { get; set; }

    /// <summary>
    /// </summary>
    public string Status { get; set; }

    /// <summary>
    ///     首2小时免费停车券
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// </summary>
    public string ExpirationDate { get; set; }

    /// <summary>
    /// </summary>
    public decimal DiscountFee { get; set; }

    /// <summary>
    /// </summary>
    public string DefaultSelected { get; set; }

    /// <summary>
    /// </summary>
    public string Superposition { get; set; }

    /// <summary>
    /// </summary>
    public int LimitCountPerOrder { get; set; }

    /// <summary>
    /// </summary>
    public decimal DiscountTime { get; set; }

    /// <summary>
    /// </summary>
    public bool Disabled { get; set; }

    public bool Selected { get; set; }
}

public class DiscountInfo1
{
    /// <summary>
    /// </summary>
    public decimal UsingTotalDiscount { get; set; }

    /// <summary>
    /// </summary>
    public bool MemberLevelDiscount { get; set; }

    /// <summary>
    /// </summary>
    public List<PointsItem> Points { get; set; }

    /// <summary>
    /// </summary>
    public List<CouponsItem> Coupons { get; set; }
}

public class ParkingRule
{
    /// <summary>
    /// </summary>
    public int MaxOneDayDiscountFee { get; set; }

    /// <summary>
    /// </summary>
    public string EnableNewMemberPoints { get; set; }

    /// <summary>
    /// </summary>
    public string EnablePoints { get; set; }

    /// <summary>
    /// </summary>
    public string UnLimitWeekendPoints { get; set; }

    /// <summary>
    /// </summary>
    public string EnableCoupon { get; set; }

    /// <summary>
    /// </summary>
    public string EnablePaperCoupons { get; set; }

    /// <summary>
    /// </summary>
    public int MaxPointsTime { get; set; }

    /// <summary>
    /// </summary>
    public string EnableConsume { get; set; }

    /// <summary>
    /// </summary>
    public string EnableConsumeNonSplit { get; set; }

    /// <summary>
    /// </summary>
    public int AvailableDiscountFee { get; set; }

    /// <summary>
    /// </summary>
    public int HourPrice { get; set; }

    /// <summary>
    /// </summary>
    public string OneTimeLimitation { get; set; }

    /// <summary>
    /// </summary>
    public string OneDayLimitation { get; set; }
}

public class ParkInfo
{
    /// <summary>
    /// </summary>
    public string ParkName { get; set; }

    /// <summary>
    /// 计费基础规则：15分钟内免费，首小时15元，其后每小时5元，全天封顶60元。
    ////    嘉湾汇会员停车礼遇：
    ////银卡：每月可免费领取2张首2小时停车券
    ////金卡：每月可免费领取5张首2小时停车券
    ////铂金卡：每月可免费领取10张首2小时停车券
    ////* 数量有限，领完即止
    ////仅限开具一个月内的停车费电子发票
    /// </summary>
    public string Description { get; set; }

    /// <summary>
    /// </summary>
    public int ParkMallCode { get; set; }

    /// <summary>
    /// </summary>
    public string BuildingId { get; set; }
}

public class ParkingCheckOutResp
{
    /// <summary>
    /// </summary>
    public ParkingRecord1 ParkingRecord { get; set; } = new();

    /// <summary>
    /// </summary>
    public DiscountInfo1 DiscountInfo { get; set; } = new();

    /// <summary>
    /// </summary>
    public ParkingRule ParkingRule { get; set; } = new();

    /// <summary>
    /// </summary>
    public ParkInfo ParkInfo { get; set; } = new();
}